<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表情展示</title>
    <style>
        .list {
            display: flex;
            text-align: center;
        }
    </style>
</head>

<body>
    <div class="list"></div>
    <button class="prev">上一页</button>
    <button class="next">下一页</button>
    <span></span>
</body>

</html>
<script>
    let page = 1
    // 封装ajax请求
    function ajax(method, url, params, cb) {
        // 创建xhr对象
        let xhr = new XMLHttpRequest()
        // 配置xhr对象
        xhr.open(method, url + '?' + objToSearchString(params))
        // 设置回调函数，用来接收响应数据
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                cb(JSON.parse(xhr.responseText))
            }
        }
        // 发送xhr请求
        xhr.send()
    }

    // 对象转查询字符串格式
    function objToSearchString(obj) {
        let str = ''
        // 遍历对象，将对象拼接成 key=value&key=value
        for (const key in obj) {
            str += `${key}=${obj[key]}&`
        }
        // 去掉字符串后面的&
        return str.slice(0, str.length - 1)
    }

    // 给上一页按钮添加点击事件，点击上一页，让他回到之前的显示
    document.querySelector('.prev').onclick = () => {
        document.querySelector('.next').disabled = false
        // 页码小于等于1时，就将该按钮禁用
        if (page > 1) {
            render(--page)
            if (page == 1) {
                document.querySelector('.prev').disabled = true
            }
        }
        // 获取显示页数的标签,并改变显示页码
        document.querySelector('span').innerText = page + '/' + 4
    }

    // 给下一页按钮添加点击事件，点击下一页，让他回到之前的显示
    document.querySelector('.next').onclick = () => {
        document.querySelector('.prev').disabled = false
        // 页码大于等于4时，就将该按钮禁用
        if (page < 4) {
            render(++page)
            if (page == 4) {
                document.querySelector('.next').disabled = true
            }
        }

        // 获取显示页数的标签,并改变显示页码
        document.querySelector('span').innerText = page + '/' + 4
    }

    // 封装调用ajax请求
    function render(params) {
        ajax("get", "https://yantianfeng.com/api/emotion", { page: params, count: 10 }, function (data) {
            document.querySelector('.list').innerHTML = data.emotions.map((item) => {
                return `<div class="item">
                            <img src="${item['url']}" alt="">
                            <p>${item['title']}</p>
                        </div>
                        `
            }).join('')
        })
    }

    render(1)
    // 获取显示页数的标签,显示第一页
    document.querySelector('span').innerText = page + '/' + 4
    document.querySelector('.prev').disabled = true
</script>